Micron Document
🎖️GitЯра🎖️

Commit bd732dd9e590ceee88c7f016b6533411364daf6b


Parents : 62695d4
Author : James Rich <2199651+jamesarich@users.noreply.github.com>
Signature : Signature validation error
Date : 2026-08-04T14:05:23-05:00
Committer : GitHub <noreply@github.com>
Date : 2026-08-04T19:05:23Z

fix: Site Planner map/camera parity with iOS (#6577)

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>

Changes
Diff

diff --git a/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapView.kt b/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapView.kt
index d0386fffee..dd9a89c511 100644
--- a/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapView.kt
+++ b/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapView.kt
@@ -898,6 +898,9 @@ fun MapView(
LaunchedEffect(sitePlannerRequest) {
sitePlannerRequest?.let { node ->
sitePlannerInitial = node.toSitePlannerParams(channelSet)
+ if (node.validPosition != null) {
+ map.controller.animateTo(GeoPoint(node.latitude, node.longitude))
+ }
mapViewModel.consumeSitePlannerRequest()
}
}

diff --git a/androidApp/src/fdroid/kotlin/org/meshtastic/app/node/component/InlineMap.kt b/androidApp/src/fdroid/kotlin/org/meshtastic/app/node/component/InlineMap.kt
index 00d3cf9c76..6b3e185183 100644
--- a/androidApp/src/fdroid/kotlin/org/meshtastic/app/node/component/InlineMap.kt
+++ b/androidApp/src/fdroid/kotlin/org/meshtastic/app/node/component/InlineMap.kt
@@ -45,7 +45,7 @@ fun InlineMap(node: Node, modifier: Modifier = Modifier) {
}
}
- LaunchedEffect(node.num) {
+ LaunchedEffect(node.latitude, node.longitude) {
val point = GeoPoint(node.latitude, node.longitude)
map.overlays.clear()

diff --git a/androidApp/src/google/kotlin/org/meshtastic/app/map/MapView.kt b/androidApp/src/google/kotlin/org/meshtastic/app/map/MapView.kt
index 63e922aa29..0f42d4c995 100644
--- a/androidApp/src/google/kotlin/org/meshtastic/app/map/MapView.kt
+++ b/androidApp/src/google/kotlin/org/meshtastic/app/map/MapView.kt
@@ -988,6 +988,9 @@ fun MapView(
LaunchedEffect(sitePlannerRequest) {
sitePlannerRequest?.let { node ->
sitePlannerInitial = node.toSitePlannerParams(channelSet)
+ if (node.validPosition != null) {
+ cameraPositionState.animate(CameraUpdateFactory.newLatLng(LatLng(node.latitude, node.longitude)))
+ }
mapViewModel.consumeSitePlannerRequest()
}
}

diff --git a/androidApp/src/google/kotlin/org/meshtastic/app/node/component/InlineMap.kt b/androidApp/src/google/kotlin/org/meshtastic/app/node/component/InlineMap.kt
index 9930820676..235f815918 100644
--- a/androidApp/src/google/kotlin/org/meshtastic/app/node/component/InlineMap.kt
+++ b/androidApp/src/google/kotlin/org/meshtastic/app/node/component/InlineMap.kt
@@ -18,9 +18,11 @@ package org.meshtastic.app.node.component
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.key
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
+import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.model.CameraPosition
import com.google.android.gms.maps.model.LatLng
import com.google.maps.android.compose.Circle
@@ -51,6 +53,13 @@ fun InlineMap(node: Node, modifier: Modifier = Modifier) {
val cameraState = rememberCameraPositionState {
position = CameraPosition.fromLatLngZoom(location, DEFAULT_ZOOM)
}
+ // Follow live position updates. Guarded on the current target so the initial composition, which
+ // rememberCameraPositionState has already centred, doesn't animate to where the camera sits.
+ LaunchedEffect(node.latitude, node.longitude) {
+ if (cameraState.position.target != location) {
+ cameraState.animate(CameraUpdateFactory.newLatLng(location))
+ }
+ }
GoogleMap(
mapColorScheme = mapColorScheme,

diff --git a/core/resources/src/commonMain/composeResources/values/strings.xml b/core/resources/src/commonMain/composeResources/values/strings.xml
index 15e3830b9f..bab225205a 100644
--- a/core/resources/src/commonMain/composeResources/values/strings.xml
+++ b/core/resources/src/commonMain/composeResources/values/strings.xml
@@ -1584,7 +1584,7 @@
<string name="signal">Signal</string>
<string name="signal_quality">Signal Quality</string>
<!-- SITE -->
- <string name="site_planner">Site Planner</string>
+ <string name="site_planner">Estimate Coverage</string>
<string name="site_planner_antenna_gain_dbi">Antenna gain (dBi)</string>
<string name="site_planner_antenna_height_meters">Antenna height (m)</string>
<string name="site_planner_color_scale">Color palette</string>

Served by rngit 1.5.0 - Generated in 0.11s